package com.gd.iot.energy.service.common;

import com.gd.iot.energy.pojo.superadmin.dto.AdminDTO;
import com.gd.iot.energy.pojo.common.dto.CaptchaDTO;
import com.gd.iot.energy.pojo.common.dto.ChangePasswordFormDTO;
import com.gd.iot.energy.pojo.common.dto.PasswordLoginFormDTO;
import com.gd.iot.energy.pojo.superadmin.vo.AdminVO;
import com.gd.iot.energy.pojo.common.vo.LoginResponseVO;

/**
 * Description
 *
 * @author kris
 * @date Created at 2020/8/3 11:13
 */
public interface LoginService {

    /**
     * 生成并缓存验证码
     * @return
     */
    CaptchaDTO getCaptcha();

    /**
     * 通过姓名获取用户
     * @param userName
     * @return
     */
    AdminDTO getAdminByName(String userName);

    /**
     * 登录
     * @param passwordLoginFormDTO
     * @return
     */
    LoginResponseVO login(PasswordLoginFormDTO passwordLoginFormDTO);

    /**
     * 更新登录信息
     * @param user
     */
    void updateLoginInfo(AdminDTO user);

    /**
     * 解锁用户
     * @param user
     */
    void unlock(AdminDTO user);

    /**
     * 修改自己的密码
     * @param changePasswordFormDTO
     */
    void changePassword(ChangePasswordFormDTO changePasswordFormDTO);

    AdminVO getCurrentAdminInfo();
}
